#include "exti0_driver.h"
#include <stdint.h>
#include <stdio.h>

extern uint8_t play_flag;
void exti0_driver_config(void)
{
    // rcu_periph_clock_enable(RCU_GPIOA);
    // gpio_mode_set(GPIOA, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO_PIN_0);

    // rcu_periph_clock_enable(RCU_SYSCFG);
    // syscfg_exti_line_config(EXTI_SOURCE_GPIOA, EXTI_SOURCE_PIN0);
    // exti_init(EXTI_0, EXTI_INTERRUPT, EXTI_TRIG_RISING);
    // nvic_irq_enable(EXTI0_IRQn, 1, 1);
    // exti_interrupt_enable(EXTI_0);
    // exti_interrupt_flag_clear(EXTI_0);

    exti0_config();
	//exti1_config();
}

void exti0_config()
{
	    // SYSCFG 模块的时钟是外部中断实现的重要依赖
    // syscfg 时钟使能
    rcu_periph_clock_enable(RCU_SYSCFG);
    // 配置中断源PC0,pc1,pc2,pc3,分别对应exti线编号:exti0,exti1,exti2,exti3
    syscfg_exti_line_config(EXTI_SOURCE_GPIOC, EXTI_SOURCE_PIN0);
    // 设置中断模式:下降沿
    exti_init(EXTI_0, EXTI_INTERRUPT, EXTI_TRIG_FALLING);
    // 设置抢占与响应优先级
    nvic_irq_enable(EXTI0_IRQn, 2, 2);
    // 开启中断
    exti_interrupt_enable(EXTI_0);
    // 清除中断位,全新开始
    exti_interrupt_flag_clear(EXTI_0);
}



/**
 * 中断函数
 */
void EXTI0_IRQHandler(void)
{
    if (SET == exti_interrupt_flag_get(EXTI_0))
    {
        // 清除中断标志位
        exti_interrupt_flag_clear(EXTI_0);

        printf("exti0 interrupt");
    }
}



void exti0_driver_test(void)
{
	
}
